package com.Sep_Four;


/**
 * 1582. 二进制矩阵中的特殊位置
 * 给你一个大小为 rows x cols 的矩阵 mat，其中 mat[i][j] 是 0 或 1，请返回 矩阵 mat 中特殊位置的数目 。
 *
 * 特殊位置 定义：如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0（行和列的下标均 从 0 开始 ），则位置 (i, j) 被称为特殊位置。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/special-positions-in-a-binary-matrix
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

public class Solution1582 {

    public static int numSpecial(int[][] mat) {
        int[] row=new int[mat.length];
        int[] col=new int[mat[0].length];
        for (int i=0;i<mat.length;i++)
        {
            for (int j=0;j<mat[i].length;j++)
            {
                row[i]+=mat[i][j];
                col[j]+=mat[i][j];
            }
        }
        int res=0;
        for (int i=0;i<mat.length;i++)
        {
            for (int j=0;j<mat[i].length;j++)
            {
                if(mat[i][j]==1&&row[i]==1&&col[j]==1)
                {
                    res++;
                }
            }
        }
        return res;
    }

    public static void main(String[] args) {
        int[][] mat=new int[][]{
                {1,0,0},
                {0,1,0},
                {0,0,1}
        };
        System.out.println(numSpecial(mat));
    }
}
